Streaming media such as video and/or audio over networks has become prevalent. Client devices such as personal computers, set-top boxes, mobile devices, and other equipment can receive media streams from content servers and/or other client devices. The media streams can be transmitted over proprietary operator managed networks, and/or over open, publicly available networks such as the internet. In many situations, individual media streams can be available at different quality levels, and client device can request that the media streams be sent at specific quality levels.
When a client device has knowledge of current network conditions, such as a measurement of the available link bandwidth, the client device can request the best quality version of the media stream for the current network conditions. For example, the client device can request the media stream at the highest possible bitrate that can be sent over the currently available link bandwidth, and/or change the requested quality level of the media stream as the available link bandwidth changes over time.
Various methods for measuring network conditions have been developed. However, existing methods do not measure the available link bandwidth using passive methods.
In some measurement methods the client device can measure the rate at which data is received to obtain the link throughput, however the link throughput can differ substantially from the available link bandwidth. A measurement of the link throughput can be useful in some situations, such as when the transmission rate is greater than the available link bandwidth. However, when the transmission rate is lower than the available link bandwidth, the client device is unable to determine how much link bandwidth is actually available above the rate of transmission. Attempts to blindly increase the transmission rate to fit to a best guess of the available link bandwidth can lead to buffer under-flows when too aggressive in estimating a greater bandwidth than available, or lead to less than full use of the available bandwidth when not aggressive enough.
In other methods, active measurement methods can be used that introduce probe packets. In some of these active methods, the packets of a media stream can be piggybacked onto probe packets that are actively measured. For real time media delivery, this can impact the ability for a server to control and regulate its rate of transmission, as the media content delivery rate and timing would be controlled by the active bandwidth measurement tools. In other embodiments, active measurement methods introduce extra probe packets that can lead to traffic bottlenecks on the network.
In another measurement method, packet traces of existing application traffic can be used to estimate available bandwidth. However, these methods can lead to unreliable measurements of available bandwidth because they look at diffusion based on inter-packet arrival times of only a pair of packets, or a train of packets.
Still other measurement methods measure the bandwidth or link capacity of bottlenecks on the network. However, these methods do not look at cross traffic on the network, and therefore do not measure the actual available link bandwidth.
Further, as will be discussed below many adaptive bitrate streaming schemes use HTTP over the Transmission Control Protocol (TCP) for transport. These schemes rely on TCP throughput for estimating the available link bandwidth. TCP's inefficiency in scaling with high BDP (bandwidth delay product) networks is well-known. Given the advent of high BDP networks in recent times, a mechanism for measuring available link bandwidth independent of TCP's throughput is needed.